In many types of computer networks, it is desirable to be able to perform certain management related functions on a processing system from a remote location. For example, a business enterprise may operate a large computer network that includes numerous client and server processing systems (hereinafter “clients” and “servers”, respectively). With such a network, it may be desirable to allow a network administrator to perform or control various functions on the clients and/or servers from a remote console via the network.
Some existing computer systems allow management related functions to be performed remotely via a network. In one approach, a device known as a service processor is incorporated into a processing system to enable remote management of the processing system (referred to as the “host” processing system) via a network. The service processor is often in the form of a dedicated circuit card separate from the other elements of the host processing system. The service processor normally has a network interface that connects to the network and a separate internal interface that connects to one or more components of the processing system. The service processor typically includes control circuitry (e.g., a microprocessor or microcontroller), which is programmed or otherwise configured to respond to commands received from a remote administrative console via the network, and to perform at least some of the management functions mentioned above.
A service processor that is capable of controlling its host processing system remotely may be referred to as a remote management module (RMM). An RMM may be implemented as an add-in card and may provide console port capabilities over a local area network (LAN) or wide area network (WAN) connection and CLI functions to allow remote management of the host processing system.
An RMM may run an embedded operating system, such as Linux, inside a microprocessor. An embedded system is a special-purpose computer system, which is completely encapsulated by the device it controls. An embedded operating system is an operating system for embedded systems. An RMM may store the RMM software in its non-volatile memory, e.g., a FLASH chip. Software that has been stored onto non-volatile memory may be referred to as firmware. When a new version of the RMM software becomes available, the current RMM software may be updated with the new version.
In some existing systems, the firmware of the RMM is updated through a serial link between the host and the RMM. Once the update firmware reaches the RMM, it is burnt onto the RMM's FLASH chip. The methods currently used for file transfer over a serial link and for burning software onto a FLASH chip may result in unacceptably slow updates, because the serial interface is slow and a FLASH chip is slow electronically.
Two bottlenecks in the RMM update process are, therefore, the slow serial interface between the host and RMM and the FLASH chip being slow electronically.